การเชื่อมต่อ CData Sync ด้วย RDS
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้จะมาแนะนำเกี่ยวกับการเชื่อมต่อ CData Sync ด้วย RDS
สิ่งที่ต้องมี
※หมายเหตุ : ควรอ่านข้อมูลในหัวข้อ สิ่งที่ต้องมี อย่างละเอียด รวมถึงบทความอื่นๆ ที่เกี่ยวข้อง เพื่อไม่ให้เกิดความผิดพลาดระหว่างการดำเนินการครับ
สร้าง CData Sync บน EC2
ดูวิธีการสร้าง CData Sync ได้ที่ลิงก์ด้านล่างนี้ (สำหรับผู้ใช้งานที่มีอยู่แล้วข้ามขั้นตอนนี้ไปได้เลยครับ)
สร้าง RDS
การสร้าง RDS นี้จะเลือกใช้เป็นประเภท MySQL และเชื่อมต่อกับ EC2 Instance ของ CData Sync ที่สร้างจากขั้นตอนที่แล้ว
ดูวิธีการติดตั้ง RDS ได้ที่ลิงก์และอ่านคำอธิบายด้านล่างนี้ครับ (สำหรับผู้ใช้งานที่มีอยู่แล้วข้ามขั้นตอนนี้ไปได้เลยครับ)
บทความนี้จะเชื่อมต่อจาก Ubuntu ไปยัง RDS เพื่อสร้าง Database ที่ใช้สำหรับทดสอบโดยดำเนินการตามด้านล่างนี้
・สร้าง Database ที่ใช้สำหรับทดสอบบน RDS
・สร้าง Table ที่ใช้สำหรับทดสอบบน RDS
・ป้อนข้อมูลที่ใช้ทดสอบหากมีข้อมูลบน RDS อยู่แล้ว ให้ข้ามขั้นตอนเหล่านี้ไปได้เลย เนื่องจากตัว CData Sync มีฟังก์ชันในการเชื่อมต่อกับ MySQL จึงไม่จำเป็นต้องติดตั้ง MariaDB หรืออื่นๆ
※ตั้งแต่หัวข้อ ติดตั้ง Client MariaDB เป็นต้นไปไม่ต้องทำ เนื่องจาก
Instance ของ CData Sync
เป็น ubuntu และคำสั่งในลิงก์ตัวอย่างด้านบนนี้เป็นการรันใน Linux จึงไม่สามารถรันใน ubuntu ได้ ดังนั้นให้ทำตามลิงก์หัวข้อด้านล่างนี้ครับ (หัวข้อด้านล่างนี้เป็นขั้นตอนเกี่ยวกับการจัดการ Database ใน Server สำหรับ Ubuntu)
ติดตั้ง Client MariaDB ใน Ubuntu
สำหรับขั้นตอนในหัวข้อ "ติดตั้ง Client MariaDB" ให้ใช้คำสั่งด้านล่างนี้ เนื่องจาก Instance ของ CData Sync เป็น ubuntu
*เมื่อติดตั้ง Client MariaDB จะทำให้สามารถเชื่อมต่อกับ RDS จาก Instance ของ CData Sync ได้ แต่ไม่สามารถใช้งาน MariaDB Server ได้ !
รันคำสั่งเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ root
sudo su -
รันคำสั่ง Update server ให้เป็นปัจจุบัน
apt update
รันคำสั่งติดตั้ง Client MariaDB
apt install mariadb-client
เชื่อมต่อไปยัง RDS (MySQL) ใน Ubuntu
เชื่อมต่อจาก EC2 ไปยัง RDS ดังนี้
รันคำสั่งเชื่อมต่อกับฐานข้อมูล RDS จาก EC2 (ก่อนรันคำสั่งเปลี่ยนข้อมูลใน [ ] ให้เป็นของคุณ)
» RDS Endpoint: (-h [your_endpoint_rds]
)
» Master username: (-u admin
)
» Master password: (-p[your_password_rds]
)
mariadb -h tinnakorn-rds-mysql.xxxxxxxxxx.ap-southeast-1.rds.amazonaws.com -u admin -pPassW0rd
Output (example)
root@ip-xx-xx-xx-xx:~
root@ip-172-31-19-154:~# mariadb -h tinnakorn-rds-mysql.xxxxxxxxxx.ap-southeast-1.rds.amazonaws.com -u admin -pPassW0rd
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 32
Server version: 8.0.34 Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
สร้าง Database ใน Ubuntu
ผมจะทดสอบสร้าง Database ในฐานข้อมูล RDS โดยรันคำสั่งต่อไปนี้
ก่อนอื่นรันคำสั่งเรียกดูข้อมูลใน Database
show databases;
Output (example) จะเห็นว่ามี Database เริ่มต้นของ RDS แสดงแบบนี้
root@ip-xx-xx-xx-xx:~
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.012 sec)
MySQL [(none)]>
รันคำสั่งสร้าง Database โดยเปลี่ยน database_name
เป็นชื่อ Database ที่ต้องการ (ตัวอย่างนี้ใช้ชื่อ tinnakorn
)
CREATE DATABASE database_name;
Output (example)
root@ip-xx-xx-xx-xx:~
MySQL [(none)]> CREATE DATABASE tinnakorn;
Query OK, 1 row affected (0.012 sec)
MySQL [(none)]>
รันคำสั่งเรียกดูข้อมูลใน Database อีกครั้ง
show databases;
Output (example) จะเห็นว่ามี Database ที่ชื่อ tinnakorn
เพิ่มขึ้นมาแล้ว
root@ip-xx-xx-xx-xx:~
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| tinnakorn |
+--------------------+
5 rows in set (0.002 sec)
MySQL [(none)]>
สร้าง Table
ผมจะทำการสร้าง Table ใน Database ที่ชื่อ tinnakorn
ที่สร้างจากขั้นตอนที่แล้ว
ก่อนอื่นรันคำสั่งเปลี่ยนฐานข้อมูลไปยัง Database ที่เราสร้างขึ้นมา เช่น tinnakorn
(เปลี่ยน "database_name" เป็นชื่อ DB ที่สร้างจากขั้นตอนที่แล้ว)
use database_name;
Output (example)
root@ip-xx-xx-xx-xx:~
MySQL [(none)]> use tinnakorn;
Database changed
MySQL [tinnakorn]>
รันคำสั่งสร้าง Table โดยเปลี่ยน table_name
เป็นชื่อ Table ที่ต้องการ (ตัวอย่างนี้ใช้ชื่อ test
)
create table table_name (id int, name varchar(30));
Output (example)
root@ip-xx-xx-xx-xx:~
MySQL [tinnakorn]> create table test (id int, name varchar(30));
Query OK, 0 rows affected (0.097 sec)
MySQL [tinnakorn]>
INSERT ข้อมูลลงใน Table
รันคำสั่ง Insert ข้อมูลลงในตารางของฐานข้อมูล โดยเปลี่ยน table_name
เป็นชื่อ Table ที่สร้างจากขั้นตอนที่แล้ว (ตัวอย่างนี้จะเพิ่มข้อมูลลงใน Table ที่ชื่อ test
)
insert into table_name value (1, 'test');
Output (example)
root@ip-xx-xx-xx-xx:~
MySQL [tinnakorn]> insert into test value (1, 'test');
Query OK, 1 row affected (0.006 sec)
MySQL [tinnakorn]>
รันคำสั่งแสดงข้อมูลในตาราง โดยเปลี่ยน table_name
เป็นชื่อ Table ที่สร้างเมื่อสักครู่นี้ (ตัวอย่างนี้จะแสดงข้อมูลของ Table ที่ชื่อ test
)
select * from table_name;
Output (example)
root@ip-xx-xx-xx-xx:~
MySQL [tinnakorn]> select * from test;
+------+------+
| id | name |
+------+------+
| 1 | test |
+------+------+
1 row in set (0.001 sec)
MySQL [tinnakorn]>
รันคำสั่งออกจากการเชื่อมต่อกับฐานข้อมูล RDS
quit
Output (example)
root@ip-xx-xx-xx-xx:~
MySQL [tinnakorn]> quit
Bye
ubuntu@ip-xx-xx-xx-xx:~$
การเชื่อมต่อ CData Sync ด้วย RDS
เข้ามาที่หน้าจอ RDS แล้วคัดลอก Endpoint เตรียมไว้
กลับมาที่หน้าเว็บไซต์ CData Sync อีกครั้ง แล้วเลือกแท็บ Connections
ด้านบน แล้วคลิก Add Connection
ตั้งค่า Connection Settings ตามนี้
» Connection Name *: your_name (ตั้งชื่ออะไรก็ได้ ซึ่งเป็นชื่อที่ใช้ในการเชื่อมต่อ)
» Server *: your_endpoint
» Port *: 3306
» Auth Scheme *: Password
» User *: your_user
» Password *: your_password
» Database: your_database
» Use SSL: False
» คลิก Create & Test
(ถ้าแสดงข้อความ "Connection created successfully." ถือว่าการเชื่อมต่อนี้เสร็จสมบูรณ์)
*หากการเชื่อมต่อล้มเหลวให้ทำการตรวจสอบข้อมูลที่ใส่ใน Connection Settings อย่างละเอียด และลอง Create & Test
อีกครั้ง
หากการเชื่อมต่อนี้เสร็จสมบูรณ์แล้วจะแสดงหน้าจอแบบนี้
แล้วคลิก Connections
จะเห็นว่า Connection ของ CData MySQL แสดงขึ้นมาแล้ว เพียงเท่านี้การตั้งค่าก็เสร็จเรียบร้อยครับ
สรุป
การสาธิตนี้เป็นการเชื่อมต่อ CData Sync ด้วย RDS โดยสร้าง CData Sync และ RDS (MySQL) บน AWS ขึ้นมา แล้วเชื่อมต่อเข้าด้วยกัน หากเชื่อมต่อกันได้สำเร็จจะทำให้เราสามารถดึงข้อมูลที่ต้องการบน CData Sync จากแหล่งต่างๆ ไปยัง RDS (MySQL) บน AWS ได้อย่างง่ายดาย
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP (Tinnakorn Maneewong) จากบริษัท Classmethod (Thailand) ครับ !